package com.example.localmusic;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;
import java.util.List;

public class MusicAdapter extends RecyclerView.Adapter<MusicAdapter.LocalMusicViewHolder> {
    Context context;
    //音乐数据列表
    List<SongBean>songList;

    /**
     * 构造函数，初始化适配器。
     * @param context 上下文对象
     * @param songList 音乐数据列表
     */
    public MusicAdapter(Context context,List<SongBean>songList) {
        this.context = context;
        this.songList =songList;
    }

    /**
     * 内部类 LocalMusicViewHolder，用于持有每个项目视图的引用。
     */
    class  LocalMusicViewHolder extends RecyclerView.ViewHolder{
        TextView songIdTV,songNameTV,songTimeTV;

        /**
         * LocalMusicViewHolder 的构造函数。
         * @param itemView 项目视图
         */
        public LocalMusicViewHolder(@NonNull View itemView) {
            super(itemView);
            songIdTV = itemView.findViewById(R.id.songId);
            songNameTV = itemView.findViewById(R.id.songName);
            songTimeTV = itemView.findViewById(R.id.songTime);
        }
    }

    /**
     * 创建新的项目视图持有者。
     * @param parent 父视图组
     * @param viewType 视图类型
     * @return 新的 LocalMusicViewHolder 对象
     */
    @NonNull
    @Override
    public LocalMusicViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.activity_music_list_view_item,parent,false);
        LocalMusicViewHolder holder = new LocalMusicViewHolder(view);
        return holder;
    }

    /**
     * 绑定数据到项目视图。
     * @param holder 视图持有者
     * @param position 项目位置
     */
    @Override
    public void onBindViewHolder(@NonNull LocalMusicViewHolder holder, int position) {

        SongBean songBean = songList.get(position);
        holder.songIdTV.setText(songBean.getSongId());
        holder.songNameTV.setText(songBean.getSongName());
        holder.songTimeTV.setText(songBean.getSongTime());
    }


    /**
     * 获取项目数量。
     * @return 音乐数据列表的大小
     */
    @Override
    public int getItemCount() {
        return songList.size();
    }
}
